<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // find()方法 用于找出第一个符合条件的数组成员，若都不符合，返回undefined
        // console.log([1, 2, 5, 6, 8, 9].find(n => n > 4))//5
        // console.log([1, 2, 5, 6, 8, 9].find(n => n > 10))//undefined

        // findIndex()方法返回第一个符合条件的数组成员位置，若都不符合，返回-1
        // console.log([1, 2, 5, 6, 8, 9].findIndex(n => n > 5));//3

        // find findIndex方法均接受两个参数，一个回调函数（可接受三个参数：value index arr)，   一个可选值用于指定回调函数内部的this
        // let arr = [1, 2, 5, 6, 7, 9];
        // let res = arr.find((value, index, arr) => {
        //     return value > 4
        // });
        // console.log(res);

        // 两个方法都可以接受第二个参数，用来绑定回调函数的this对象
        // function foo(v) {
        //     return v > this.age
        // }
        // let person = {
        //     name: '小莱',
        //     age: 23
        // }
        // let res = [15, 22, 29, 25, 18].find(foo, person);
        // console.log(res);//29

        // fill()方法能使用特定值填充数组中的一个或多个元素
        // let arr = [1, 2, 3, 4, 5];
        // 单个参数
        // arr.fill('g');
        // console.log(arr);//['g','g','g','g','g']
        // 可以提供第二个、第三个参数标明起始位置与结束位置（填充不包含结束位置）
        // 没有第三个参数会一直填充到最后一个
        // arr.fill('g', 2);
        // console.log(arr);

        // copyWithin()方法 可更改数组多个元素，可在数组内复制自身元素
        // 参数1 开始填充位置
        // 参数2 开始复制的位置
        // 参数3 复制停止的位置 (不包括)
        // let arr = [1, 2, 8, 4, 5, 6, 7];
        // arr.copyWithin(3, 0);
        // console.log(arr);
        // arr.copyWithin(3, 0, 3);
        // console.log(arr);

        // entries keys values用于遍历数组，返回一个遍历器对象，可以用for...of循环进行遍历
        // let arr = [1, 2, 8, 4, 6, 7];
        // for (const [key, value] of arr.entries()) {
        //     console.log(key, value)
        // }

        // let arr = [1, 2, 8, 4, 6, 7];
        // for (const key of arr.keys()) {
        //     console.log(key)
        // }

        // includes方法 返回一个布尔值，表示数组是否包含指定的值
        // let arr = [1, 2, 8, 4, 5, 6, 7, undefined];
        // console.log(arr.includes(8, 2));
        // console.log(arr.includes(5, -4));
    </script>
</body>

</html>